// void, Obj This, Obj other

Hero this;
point pt;

Sleep(10);
this = This.AsHero();

if (!.IsValid()) return;
if (!other.IsValid()) return;
//pr("hero approach");
//.SetParryMode(false); 
if(IsAIPlayer(.player)){

	if (other.IsAlive()){
		if (.InHolder || .PathTo(other, .FormRadius, 0) > .sight){
			.FormSetupAndMoveTo (other, 20, 0, true);
			while (.HasPath ()){
			  .FormKeepMoving (1500);
			}
		}
	}


} else {
	//.pr("The script should be modified to check if the unit is still visible");
	pt = other.posRH;

	if(.IsValid){
		if(other.IsValid){
			Sleep(rand(100)+10);
			.AddCommand(false, "move", pt);
			return;
		}
	}
}
